Career 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009 2008 2007 2006 2005 2004 2003 2002
All Rounds Final 1/2 1/4 First Second Third Fourth Pre-q Rubber 1 Rubber 2 Rubber 3 Rubber 4 Rubber 5 Robin Bronze Q3 N/A Q2 Q1 ER Q4 CR QF Q5 N/A
All Courts Acrylic N/A Clay Grass Carpet Hard I.hard
All Tour Infosys Hall of Fame Open - Newport Citi Open - Washington Greece F2 Portugal F2 France F5 Italy F2 Canada F3 Canada F4 Canada F5 France F10 Spain F20 Spain F21 Spain F30 Iran F3 Iran F4 France F3 Austria F3 Spain F3 Spain F4 Italy F4 Morocco F1 Morocco F2 Spain F5 Uzbekistan F3 Morocco F3 Morocco F4 Morocco F5 Tunisia F2 France F8 France F9 Spain F20 Algeria F1 Algeria F2 Algeria F3 South Africa F1 Canada F1 South Africa F2 Canada F2 Canada F3 Tunisia F5 Tunisia F6 Canada F1 Morocco F1 Canada F2 Morocco F2 Canada F3 Morocco F3 Morocco F4 Morocco F5 USA F24 USA F25 El Salvador F1 Guatemala F1 Panama F1 Costa Rica F1 Germany F4 USA F4 USA F5 USA F6 Canada F2 USA F7 USA F8 Algeria F2 El Salvador F1 Guatemala F1 Spain F2 Colombia F1 Colombia F2 Spain F4 Morocco F1 Morocco F2 France F7 Morocco F6 Morocco F7 Morocco F1 Morocco F2 Morocco F1 Morocco F2 Morocco F7 Spain F13 Canada F5 Canada F7 Venezuela F8 Morocco F8 USA F26 Morocco F9 USA F27 USA F5 Canada F2 Spain F12 Romania F1 Morocco F1 Morocco F2 Morocco F3 USA F6 Canada F1 Canada F5 Canada F9 Spain F29 Morocco F7 Morocco F9 Morocco F10 France F13 Spain F2 Australia F1 Canada F7 Spain F3 Spain F4 Canada F1 Canada F2 Morocco F6 Spain F7 Spain F8 Morocco F1 Italy F18 Morocco F2 Morocco F3 Canada F5 Canada F7 Canada F9 Morocco F4 Spain F35 Canada F8 Spain F36 Morocco F5 Spain F5 Croatia F5 Croatia F4 Morocco F3 Belgium F12 Morocco F4 Morocco F5 Morocco F6 Spain F1 Portugal F3 Morocco F1 Morocco F2 Morocco F3 Spain F30 Morocco F1 Morocco F2 Morocco F3 USA F16 Spain F14 Spain F15 Spain F16 USA F17 USA F18 France F10 Canada F6 Canada F3 France F11 Canada F4 France F12 Canada F5 France F13 Morocco F7 Morocco F8 Morocco F9 Tunisia F11 (Hammamet) Tunisia F12 (Hammamet) Tunisia F13 (Hammamet) Tunisia F14 (Hammamet) Tunisia F15 (Hammamet) Tunisia F16 (Hammamet) Tunisia F17 (Hammamet) Tunisia F18 (Hammamet) Spain F16 (Huelva) Spain F18 (Palma del Rio) Morocco F4 (Casablanca) Morocco F5 (Beni Mellal) Morocco F6 (Agadir) Tunisia F2 (Hammamet) Tunisia F3 (Hammamet) Portugal F3 (Loule) Portugal F4 (Quinta Do Lago) France F6 (Villers Les Nancy) Morocco F1 (Khemisset) Morocco F2 (Meknes) Morocco F3 (Tanger) Spain F27 (Seville) Spain F28 (Madrid) Spain F29 (Sabadell) M15 Vale Do Lobo M15 Faro M15 Loule M15 Portimao M25 Vic M25+H Arlon M25 Bourg-En-Bresse M15 Tanger M15 Agadir M15 Sabadell M25 Riba - Roja de Turia M15 Paguera M15 Valldoreix M15 Villena M15 Torello M25 Nur-Sultan M15 Girona M15 Madrid M25 Cancun M25 Antalya M25 Antalya M15 Marrakech M15 Madrid M25 Madrid M25 Zaragoza M15 Benicarlo Canada F9 IX Open Internacional D'Andorra - Andorra Arroyo de la Encomienda - Valladolid Open Castilla y Leon - Segovia XXXVII Torneig C.E. Laieta - Barcelona Arroyo de la Encomienda - Valladolid Open Castilla y Leon - Segovia Kish Free Zone Island Challenger - Kish Island The Natrel's Challenger of Granby - Granby Arroyo de la Encomienda - Valladolid ATP Open Castilla y Leon - Segovia Open de Tenis Amaya - Pamplona XI Ciutat de Barcelona - Barcelona Qatar ATP Challenger - Doha Tunis Open 2006 - Tunis ECM Prague Open - Prague 5° Sporting Challenger - Turin Schickendanz Open - Furth Open de Montauban - Montauban Porsche Open - Poznan The Natrel's Challenger - Granby Open Castilla y Leon - Segovia GHI Bronx Tennis Classic - Bronx Challenger Copa Sevilla - Seville Open Costa Daurada - Tarragona Ciutat de Barcelona - Barcelona Copa Petrobras Uruguray - Montevideo Copa Petrobras Brazil - Aracaju Challenger Banque Nationale Rimouski - Rimouski Copa Petrobras Argentina - Buenos Aires Naples Challenger - Naples South African Airways Tennis Open - Durban KGHM Dialog Polish Indoors - Wroclaw Internationaux de Doubs Open de Franchie-Comte - Besancon Morocco Tennis Tour - Casablanca Morocco Tennis Tour - Marrakech II Naples ITG Challenger - Naples Tunis Open 2007 - Tunis The 'Fitz' Casino Challenger - Tunica 2007 West Side Tennis Club Clay Court Challenger - Forest Hills Countrywide Classic USTA Challenger - Carson Baden Open - Karlsruhe Memorial Manfredini - Sassuolo Sunset Moulding Yuba City Racquet Club Challenger - Yuba City Arpa Ceramic Cup - Reggio Emilia Open de Montauban - Montauban Trofeo Sisma Mantova - Mantova Riviera di Rimini Challenger - Rimini Challenger Natrel Presented by National Bank - Granby Porsche Open - Poznan Odlum Brown Vancouver Open - Vancouver LXVII Concursu Internacional de Vigo - Vigo Citta di Como - Como Genova Open Challenger - Genova Bruno & Bruno Trial Lawyers Men's Challenger - New Orleans Copa Sevilla 2007 - Seville Lubbock Challenger - Lubbock Posillipo Tennis Cup - Napoli Oklahoma Challenger - Tulsa Open Costa Daurada - Tarragona Swanston Challenger - Sacramento Challenger 42 - Andrezieux Pro Challenger at Calabasas - Calabasas Ford Tennis Championships - Louisville Challenger Tunisie - Tunis South African Airways Open - East London Challenger de Providencia-Copa Kia - Santiago Morocco Tennis Tour - Meknes Abierto Internacional de Salinas 'Dario Expreso' - Salinas San Luis Potosi Challenger - San Luis Potosi Morocco Tennis Tour - Tanger III Aberto Santa Catarina de Tenis - Florianopolis XL Bermuda Open - Bermuda Morocco Tennis Tour - Rabat Morocco Tennis Tour - Marrakech Trofeo Cassa di Risparmio di Alessandria - Alessandria Memorial A. Manfredini Sassuolo Challenger - Sassuolo Zenith Tennis Cup-Harbour Club - Milan 14° Torneo B. Camparini- Lines Trophy - Reggio Emilia Sporting Challenger '08-Trofeo Regione Piemonte - Turin Challenger Banque Nationale - Granby Siemens Open - Scheveningen Moncton Men's Challenger - Moncton Riviera de Rimini Challenger - Rimini San Marino CEPU Open - San Marino Oldum Brown Vancouver Open - Vancouver Levene Gouldin & Thompson Tennis Challenger - Binghamton LXVII Concurso Internacional de Tenis Cidade de Vigo - Vigo Genova Open Challenger - Genova Semgroup Challenger - Tulsa Waco Tennis Challenger - Waco 2008 Lubbock Challenger - Lubbock Tennislife Cup - Napoli Open Tarragona Costa Daurada - Tarragona Sacramento Challenger - Sacramento The Mercedes Benz of Calabasas - Calabasas Ford Tennis Championships - Louisville National Bank Men's Rimouski Challenger - Rimouski JSM Challenger of Champaign - Urbana Carson Challenger Dallas Challenger Tanger Challenger Meknes Challenger Rabat Challenger Marrakech Challenger Barletta Challenger Napoli Challenger Tunis Challenger San Remo Challenger Zagreb Challenger Lugano Challenger Milan Challenger Reggio Emilia Challenger Braunschweig Challenger Turin Challenger Pozoblanco Challenger Bogota Challenger Orbetello Challenger Granby Challenger Segovia Challenger Vancouver Challenger San Sebastian Challenger Szczecin Challenger Cali Challenger Bogota Challenger Trnava Challenger Napoli Challenger Quito Challenger Montevideo Challenger Tarragona Challenger Asuncion Challenger Santiago Challenger Genova Challenger Honolulu Challenger Tanger Challenger Meknes Challenger Rabat Challenger Marrakech Challenger Rimouski Challenger Baton Rouge Challenger Rome Challenger Tallahassee Challenger Rome Challenger Tunis Challenger Zagreb Challenger Carson Challenger Ojai Challenger Kosice Challenger Reggio Emilia Challenger Winnetka Challenger Aptos Challenger Lexington Challenger Granby Challenger Vancouver Challenger Bangkok Challenger Singapore Challenger Burnie Challenger Caloundra Challenger Meknes Challenger Casablanca Challenger Rabat Challenger Rimouski Challenger Marrakech Challenger Rome Challenger Napoli Challenger Prague Challenger Alessandria Challenger Knoxville Challenger Champaign Challenger Noumea Challenger Honolulu Challenger Meknes Challenger Casablanca Challenger Rabat Challenger Marrakech Challenger Savannah Challenger Tunis Challenger Athens Challenger Furth Challenger Kosice Challenger Panama City Challenger San Benedetto Challenger Recanati Challenger Orbetello Challenger Vancouver Challenger Madrid Challenger Sacramento Challenger Noumea Challenger Maui Challenger Burnie Challenger West Lakes Challenger Sydney Challenger Rimouski Challenger Panama City Challenger Savannah Challenger Tunis Challenger Tallahassee Challenger Arad Challenger Prague Challenger Tanger Challenger Manta Challenger Granby Challenger Recanati Challenger Lexington Challenger Vancouver Challenger Kenitra Challenger Napa Challenger Sacramento Challenger Tiburon Challenger Charlottesville Challenger Casablanca Challenger Knoxville Challenger Champaign Challenger Noumea Challenger Maui Challenger Dallas Challenger Quimper Challenger Cherbourg Challenger Irving Challenger Guadalajara Challenger Sarasota Challenger Savannah Challenger Tunis Challenger Tallahassee Challenger Rome Challenger Bordeaux Challenger Prostejov Challenger Prague Challenger Manta Challenger Lexington Challenger Meknes Challenger Napa Challenger Kenitra Challenger Sacramento Challenger Casablanca Challenger Vicenza Challenger Granby Challenger Biella Challenger Seville Challenger Cary Challenger Kenitra Challenger Columbus Challenger Tiburon Challenger Sacramento Challenger Mohammedia Challenger Fairfield Challenger Casablanca Challenger Las Vegas Challenger Charlottesville Challenger Happy Valley Challenger Maui Challenger Morelos Challenger Drummondville Challenger Le Gosier Challenger Savannah Challenger Tallahassee Challenger Winnipeg Challenger Granby Challenger Gatineau Challenger Cary Challenger Columbus Challenger Kenitra Challenger Tiburon Challenger Stockton Challenger Mohammedia Challenger Monterrey Challenger Casablanca Challenger Las Vegas Challenger Charlottesville Challenger Knoxville Challenger Happy Valley Challenger Drummondville Challenger San Francisco Challenger Sarasota Challenger Tallahassee Challenger Savannah Challenger Bordeaux Challenger Surbiton Challenger Nottingham Challenger Lisbon Challenger Ilkley Challenger Winnipeg Challenger Gatineau Challenger Granby Challenger Shanghai Challenger Gwangju Challenger Ningboo Challenger Ho Chi Minh City Challenger Shenzhen Challenger Kobe Challenger Hua Hin Challenger Newport Beach Challenger Indian Wells Challenger Le Gosier Challenger Sarasota Challenger Tunis Challenger Tallahassee Challenger Savannah Challenger Aix En Provence Challenger Bordeaux Challenger Surbiton Challenger Nottingham Challenger Ilkley Challenger Winnipeg Challenger Gatineau Challenger Granby Challenger Vancouver Challenger Cary Challenger Columbus Challenger Tiburon Challenger Charlottesville Challenger Knoxville Challenger Champaign Challenger Newport Beach Challenger Indian Wells Challenger Phoenix Challenger Monterrey Challenger Sarasota Challenger Tallahassee Challenger Puerto Vallarta Challenger Aix En Provence Challenger Heilbronn Challenger Surbiton Challenger Nottingham Challenger Winnipeg Challenger Gatineau Challenger Granby Challenger Vancouver Challenger New Haven Challenger Cary Challenger Columbus Challenger Tiburon Challenger Fairfield Challenger Las Vegas Challenger Charlottesville Challenger Knoxville Challenger Champaign Challenger Bangkok Challenger Newport Beach Challenger Dallas Challenger Morelos Challenger Monterrey Challenger Ostrava Challenger Aix En Provence Challenger Iasi Challenger Split Challenger Barcelona Challenger Alicante Challenger Istanbul Challenger Cary Challenger Orlando Challenger Potchefstroom 1 Challenger Potchefstroom 2 Challenger Nur-Sultan 1 Challenger Nur-Sultan 2 Challenger Orlando Challenger Tallahassee Challenger Ostrava Challenger Prague Challenger Little Rock Challenger Orlando 2 Challenger Porto Challenger Nur-Sultan 3 Challenger Nur-Sultan 4 Challenger Lexington Challenger Cary 2 Challenger Columbus Challenger Charlottesville Challenger Knoxville Challenger Columbus Challenger Cleveland Challenger Qatar ExxonMobil Open - Doha Grand Prix Hassan II - Casablanca Gerry Weber Open - Halle Open 13 - Marseille Grand Prix Hassan II - Casablanca Grand Prix Hassan II - Casablanca Legg Mason Tennis Classic - Washington Qatar ExxonMobil Open - Doha Brisbane - Brisbane SAP Open - San Jose Delray Beach International Tennis Championships - Delray Beach Grand Prix Hassan II - Casablanca Open Sabadell Atlantico - Barcelona BMW Open - Munich Catella Swedish Open - Bastad Grand Prix de Tennis de Lyon - Lyon Chennai Open - Chennai Brasil Open - Costa do Sauipe Copa Telmex - Buenos Aires Delray Beach International Tennis Championships - Delray Beach U.S. Mens's Clay Court Championship - Houston Grand Prix Hassan II - Casablanca Serbia Open - Belgrade Thailand Open - Bangkok AIG Japan Open Tennis Championships - Tokyo Brisbane International - Brisbane Delray Beach International Tennis Championships - Delray Beach US Men's Clay Court Championship - Houston Grand Prix Hassan II - Casablanca Estoril Open - Estoril US Men's Clay Court Championship - Houston Grand Prix Hassan II - Casablanca US Men's Clay Court Championship - Houston Grand Prix Hassan II - Casablanca Open de Nice Cote d'Azur - Nice Open 13 - Marseille Grand Prix Hassan II - Casablanca US Men's Clay Court Championship - Houston Hall of Fame Tennis Championships - Newport Claro Open Colombia - Bogota Grand Prix Hassan II - Casablanca Grand Prix Hassan II - Marrakech Memphis Open - Memphis Delray Beach Open - Delray Beach US Men's Clay Court Championship - Houston Open Parc - Lyon Abierto Mexicano - Los Cabos China Open - Beijing Brisbane International - Brisbane Ecuador Open - Quito New York Open - New York Delray Beach Open - Delray Beach Grand Prix Hassan II - Marrakech Abierto Mexicano - Los Cabos Intrum Stockholm Open - Stockholm Erste Bank Open - Vienna Brisbane International - Brisbane New York Open - New York Delray Beach Open - Delray Beach US Men's Clay Court Championship - Houston Grand Prix Hassan II - Marrakech Fever-Tree Championships - London New York Open - New York Open Parc - Lyon Grand Prix Hassan II - Marrakech Rogers Cup - Montreal Rogers Cup - Montreal Rogers Masters - Toronto Rogers Masters - Montreal Rogers Masters - Toronto Mutua Madrilena Masters Madrid - Madrid Rogers Cup - Montreal BNP Paribas Masters - Paris Rogers Cup - Toronto BNP Paribas Open - Indian Wells Rogers Cup - Toronto Rogers Cup - Montreal BNP Paribas Open - Indian Wells Sony Open Tennis - Miami Rogers Cup - Toronto Western & Southern Open - Cincinnati Sarasota Challenger Lexington Challenger Columbus Challenger BNP Paribas Open - Indian Wells Miami Open - Miami Rogers Cup - Toronto BNP Paribas Open - Indian Wells Miami Open - Miami Rogers Cup - Montreal Shanghai Rolex Masters - Shanghai BNP Paribas Open - Indian Wells Miami Open - Miami Rogers Cup - Toronto BNP Paribas Open - Indian Wells Miami Open - Miami BNP Paribas Open - Indian Wells Rogers Cup - Toronto National Bank Open - Toronto Coupe Rogers - Montreal Wimbledon - London U.S. Open - New York French Open - Paris Wimbledon - London Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York French Open - Paris U.S. Open - New York Australian Open - Melbourne U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Australian Open Qualifying - Doha French Open - Paris U.S. Open - New York Davis Cup, Group 2, 2R, POL-ALG 4-1 Davis Cup, Group 2, 2R, POR-ALG 3-2 Davis Cup, Group 2, 1R, ALG-SLO 2-3 Davis Cup, Group 1, 1R, CAN-COL 5-0 Davis Cup, Group 1, 2R, BRA-CAN 3-1 Davis Cup, Group 2, PO, NOR-ALG 1-4 Davis Cup, Group 1, 1R, CAN-MEX 4-1 Davis Cup, Group 1, 2R, CHI-CAN 3-2 Davis Cup, Group 2, 2R, ALG-HUN 3-2 Davis Cup, Group 1, PO, PER-CAN 2-3 Davis Cup, Group 1, 1R, COL-CAN 4-1 Davis Cup, Americas Group I, PO, CAN-DOM 5-0 Davis Cup, Group I, 1R, MEX-CAN 1-4 Davis Cup, World Group, PO, ISR-CAN 2-3 Davis Cup, World Group, 1R, JPN-CAN 4-1 Davis Cup, Group II, PO, MAR-CYP 4-1 Davis Cup, Group II, 1R, POR-MAR 4-1 Davis Cup, Group II, PO, MON-MAR 3-1 Davis Cup, Group II, 1R, MAR-GEO 3-1 Davis Cup, Group II, 2R, ROU-MAR 5-0 Davis Cup, Group II, 1R, MAR-LTU 2-3 Davis Cup, World Group II, PO, MAR-VIE 4-0 Australian Open (juniors) French Open (juniors) Wimbledon (juniors) U.S. Open (juniors) Australian Open (juniors) U.S. Open (juniors) All Lower level tournaments Olympics - Athens